/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/10/5 10:27
 * Leetcode 415 字符串相加
 */
public class AddString {
    public String addStrings(String num1, String num2) {
        // i , j 一次从num1，num2 的最低位开始向最高位运算
        int i = num1.length()-1;
        int j = num2.length()-1;
        //add保存每次运算的进位数
        int add = 0;
        StringBuilder sb =new StringBuilder();
        //当i或j>=0，说明有数还要加
        //当add！=0，说明有进位没有算完，此时num1和num2长度相等
        while(i>=0||j>=0|| add!=0){
            //若i，j走到负数，说明当前数字已经处理完，高位补0
            int x = i>=0?num1.charAt(i)-'0':0;
            int y = j>=0?num2.charAt(i)-'0':0;
            int tempadd = x+y+add;
            sb.append(tempadd%10);
            add = tempadd / 10;
            i--;
            j--;
        }
        //逆序
        sb.reverse();
        return sb.toString();
    }
}
